﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DocumentsTagger.DM;

namespace DocumentsTagger
{
    /// <summary>
    /// Every matching algorithm for handling the text mining problem must have the following capabilities:
    /// 1. match a single item to the accumelated knowledge, and check if the item matches the conclusions from previouse data.
    /// 2. learn a large set of catagorized data.
    /// 3. learn from a single item.
    /// 
    /// This is an abstract class to obligates its user to do follow this convention.
    /// </summary>
    public abstract class AMatchingAlgorithm
    {
        public abstract bool IsMatch(Document doc);
        public abstract void Learn(List<Document> GoodDocuments, List<Document> BadDocuments);
        public abstract void Learn(Document doc, AMatchingAlgorithm.Catagory catagory);

        public enum Catagory
        {
            GOOD,
            BAD
        }
    }
}
